It is common for interactive television user interfaces to embed one or more partial-screen video streams in the user interface within windows occupying a portion of the display screen area. One example of such an interface is a channel selection guide, also known as an electronic program guide (EPG) or interactive program guide (IPG). Such guides sometimes display the currently-selected channel or a user-selected channel as a picture-in-picture window somewhere within the viewable user interface. Another example is a video-on-demand user interface where a preview video of an available movie is displayed within a portion of the viewable user interface in a window. Such video previews can significantly enhance the user's interactions with the user interface. As another example, a video window may allow for browsing alternate channels without leaving the currently selected channel or may show a preview of a newly-selected channel. A preview window may encourage the user to purchase a premium content offering as opposed to an older movie, for example, thereby increasing revenue for the system operator and content owner.
In managed networks such as cable television systems, the application providing the user interface may run on a client device (e.g., a cable TV set-top box, a so-called Smart TV, or any of several other broadband connected devices) while the embedded video stream may be decoded, scaled and embedded in the user interface, by means of the client device's hardware, software, or some combination thereof. In such systems, it may be difficult or even impossible to offer as compelling a user experience as might be currently possible since it would require hardware or software enhancements that were not foreseen when the original design of the set-top box or other client device was specified. For example, if the application requires that two embedded video streams be displayed simultaneously instead of a single video stream, the client device's hardware either may not have a second decoder available for decoding the second stream, or the device's CPU may not have sufficient processing power to perform this function in software. Another disadvantage is that even if the new requirements for more complex user-interface presentation could be realized with the client device's hardware and software, it may be difficult to upgrade the application software on the client devices that have already been deployed or to upgrade the device firmware.
One approach to addressing the disadvantages of such legacy technology is to move the user-interface creation and related applications from the set-top in the home to a centrally located (and thus remote) server, such as a cable-TV headend in the case of cable set-tops or a server farm providing Internet delivered services to Internet-connected smart TVs and set-tops. The remote server executes one instance of the set-top application for each set-top box connected to it. Hence, the complexity of executing the application and decoding one or more embedded video streams is managed entirely by the remote server. This may be accomplished by executing the application in the memory of the remote server as a so-called virtual instance of the client device and encoding the resulting video frame buffer of the virtual instance, where the buffer contains an appropriately-combined video image of the rendered user interface and the decoded video streams as windows within the user interface, and, subsequently, sending the resulting video stream as a single program stream of the combined video sequence to the client device. The client device's role in such a system is limited to receiving and decoding the compliant video stream and sending back commands responsive to the user's interaction with the received images. Although this resolves the problems related to the flexibility and upgradability of legacy client devices, the so-called brute-force approach of virtualizing the complete system and encoding the frame buffer's contents frame-by-frame is computationally expensive and may not scale economically.